export const paperComponents = [
    {
        label: "A4纸", // 组件label
        type: "paper", // 类型
        icon: "el-icon-document-add", // 图标
        designComponentName: "DesignPaper", // 配置编辑组件命名
        propComponentName: "PropParperA4", // 配置属性组件命名
        renderComponentName: "RenderPaper", // 配置预览、渲染、打印组件
        options: { // 组件配置
            paddingTop: 0, // 上边距
            paddingLeft: 0, // 左边距
            paddingRight: 0, // 右边距
            paddingBottom: 0, // 下边距
            layout: "column", // 布局 横向row/纵向column
            isPage: false, // 是否展示页码
            pagePosition: "right",
            watermark: false, // 水印
            designWidth: 210, // 设计编辑时宽度
            designHeight: 297, // 设计编辑时高度
            dataShow: false, // 无数据时隐藏整个A4纸
            dataShowField: "" // 关联字段
        }
    }
]

export const layoutComponents = [
    {
        label: "描述列表",
        type: "layout",
        icon: "el-icon-tickets",
        designComponentName: "DesignDescriptions", // 配置编辑组件命名
        propComponentName: "PropDescriptions", // 配置属性组件命名
        renderComponentName: "RenderDescriptions", // 配置预览、渲染、打印组件
        options: {
            direction: "horizontal", // 排列方式 vertical / horizontal
            border: true, // 是否带有边框
            column: 1, // 一行 Descriptions Item 的数量
            size: '', // 列表的尺寸
            isTitle: false, // 是否有标题
            title: '', // 标题内容
            colon: false, // 是否显示冒号
            itemWidth: 30, // item元素宽度 (单位mm)
            margin: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            }
        },
        optionData: [ // 配置数据
            {
                label: "标签1",
                value: "1",
                isLabel: true, // 是否展示label
                contentHeight: 0, // 内容区高度
                contentWidth: 0, // 内容宽度
                span: 1, // 列的数量
                borderTop: false, // 取消border-top
                borderRight: false, // 取消border-left
                textTop: false, // 文字 Top 对齐 默认 居中
                elementItems: []
            }
        ]
    },
    {
        label: "栅格",
        type: "layout",
        icon: "el-icon-s-grid",
        designComponentName: "DesignGrid", // 配置编辑组件命名
        propComponentName: "PropGrid", // 配置属性组件命名
        renderComponentName: "RenderGrid", // 配置预览、渲染、打印组件
        columns: [ // 栅格子集
            {
                span: 24, // 占据列数
                offset: 0, // 左侧间隔
                push: 0, // 向右移动格数
                pull: 0, // 向左移动格数
                elementItems: []
            }
        ],
        options: {
            gutter: 0, // 间距
            type: "", // 布局模式，可选 flex
            justify: "start", // flex 布局下的水平排列方式
            align: "", // flex 布局下的垂直排列方式
            margin: { // 外边距
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            }
        }
    },
    {
        label: "Flex",
        type: "layout",
        icon: "el-icon-bank-card",
        designComponentName: "DesignFlex", // 配置编辑组件命名
        propComponentName: "PropFlex", // 配置属性组件命名
        renderComponentName: "RenderFlex", // 配置预览、渲染、打印组件
        columns: [ // 盒模型子集
            {
                isFlex: true, // 是否启动flex布局
                flex: 1, // 平分数值
                width: 0, // 高度
                elementItems: []
            }
        ],
        options: {
            direction: "row", // 布局方向
            wrap: "nowrap", // 堆叠方向
            alignContent: "normal",
            justifyContent: "normal",
            alignItems: "normal",
            isPosition: false, // 定位
            border: false, // 上下边框
            margin: { // 外边距
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            },
            position: {
                top: 0.1,
                left: 0.1,
                right: 0.1,
                bottom: 0.1
            }
        }
    },
    {
        label: "Table列表",
        type: "layout",
        icon: "el-icon-ump-table",
        designComponentName: "DesignTable", // 配置编辑组件命名
        propComponentName: "PropTable", // 配置属性组件命名
        renderComponentName: "RenderTable", // 配置预览、渲染、打印组件
        options: {
            size: 'small',
            index: false, // 序号
            border: true, // 边框
            stripe: false, // 斑马纹
            height: 300, // table 高度
            showHeader: true, // 是否显示表头
            api: "", // api 地址
            preview: false, // 预览数据
            page: true, // 数据分页
            showSummary: false, // 合计
            sumText: "合计", // 合计文本
            borderTop: false, // 取消Top
            dataFilter: null, // 数据过滤器
            spanMethod: null, // 合并行列
            dataShow: false, // 无数据时隐藏整个A4纸
            blankBackslash: false, // 空白反斜杠
            dataReturnField: "" // 数据返回录入字段
        },
        tableHeader: [], // 表头
        tableData: [] // 可编辑状态下的存储数据
    }
]

export const baseComponents = [
    {
        label: "文本",
        type: "base",
        icon: "el-icon-edit-outline",
        designComponentName: "DesignText", // 配置编辑组件命名
        propComponentName: "PropText", // 配置属性组件命名
        renderComponentName: "RenderText", // 配置预览、渲染、打印组件
        toolbar: true, // 是否有工具栏功能
        style: { // 工具样式
            fontFamily: "initial",
            fontSize: "14px",
            lineHeight: 15,
            color: "#000000"
        },
        options: {
            edit: true, // 是否允许编辑
            dataReturnField: "", // 数据返回录入字段
            letterSpacing: 0, // 文字间距
            content: "", // 内容
            contentHTML: "", // 内容-html区
            textAlign: false,
            textAlignLast: false,
            overflow: false, // 文字超出隐藏
            anchor: false, // 锚点
            lineClamp: 1, // 超出...默认1，支持2，3
            anchorField: "", // 锚点关联字段
            editSelect: "input", // 编辑时 开启选择模式
            // editSelectApi: "", // 选择绑定接口
            // editSelectLabel: "", // select - laebl
            // editSelectValue: "", // select - value
            margin: { // 外边距
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            },
            padding: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            },
            scale: {
                x: 1,
                y: 1
            }
        },
        baseFun: {
            move: true,
            copy: true,
            delete: true
        }
    },
    {
        label: "分割线",
        type: "base",
        icon: "el-icon-minus",
        designComponentName: "DesignDivider", // 配置编辑组件命名
        propComponentName: "PropDivider", // 配置属性组件命名
        renderComponentName: "RenderDivider", // 渲染组件
        options: {
            direction: 'horizontal', // horizontal / vertical
            backgroundColor: "#dcdfe6", // 颜色
            lineWidth: 1, // 线宽度
            margin: 24, // 这里的margin 只包含 上下 不包含左右
            content: "", // 文案
            contentPosition: 'center' // 文案位置 left / right / center
        },
        baseFun: {
            move: true,
            copy: true,
            delete: true
        }
    },
    {
        label: "盖章签字",
        type: "base",
        icon: "el-icon-s-check",
        designComponentName: "DesignImage", // 配置编辑组件命名
        propComponentName: "PropImage", // 配置属性组件命名
        renderComponentName: "RenderImage", // 渲染组件
        draggable: true, // 是否允许拖动
        options: {
            lock: false, // 锁定
            parentPosition: false, // 父级定位
            width: 40, // 宽高
            height: 40,
            x: 0, // 定位
            y: 0,
            fit: "fill", // fill / contain / cover / none
            alt: "", // 图片原生alt
            type: "seal", // seal/sign 盖章/签名
            src: "" // 图片地址
        },
        baseFun: {
            move: false,
            copy: false,
            delete: true
        }
    },
    {
        label: "图片",
        type: "base",
        icon: "el-icon-picture",
        designComponentName: "DesignPicture", // 配置编辑组件命名
        propComponentName: "PropPicture", // 配置属性组件命名
        renderComponentName: "RenderPicture", // 渲染组件
        options: {
            width: 100,
            height: 100,
            display: 'block',
            fit: "fill", // fill / contain / cover / none
            alt: "", // 图片原生alt
            src: ""
        },
        baseFun: {
            move: true,
            copy: true,
            delete: true
        }
    },
    {
        label: "canvas艺术字",
        type: "base",
        icon: "el-icon-s-marketing",
        designComponentName: "DesignCanvasText", // 配置编辑组件命名
        propComponentName: "PropCanvasText", // 配置属性组件命名
        renderComponentName: "RenderCanvasText", // 配置预览、渲染、打印组件
        toolbar: true, // 是否有工具栏功能
        style: { // 默认样式
            fontFamily: "initial", // toolbar/canvas默认值
            fontWeight: 'normal', // canvas默认值
            fontStyle: "normal", // canvas默认值
            fontSize: "16px", // toolbar/canvas默认值
            lineHeight: 20, // 暂不支持无使用
            color: "#000000", // toolbar/canvas默认值
            textAlign: "start", // canvas默认值
            textBaseline: "alphabetic" // canvas默认值
        },
        options: {
            canvasWidth: 100, // 画布宽 100%
            canvasHeight: 50, // 画布高 默认 50px
            content: "", // 画布艺术字内容
            contentField: "", // 接口字段绑定
            scale: {
                x: 1,
                y: 1
            }
        },
        baseFun: {
            move: true,
            copy: true,
            delete: true
        }
    },
    {
        label: "Select选择器",
        type: "base",
        icon: "el-icon-finished",
        designComponentName: "DesignSelect", // 配置编辑组件命名
        propComponentName: "PropSelect", // 配置属性组件命名
        renderComponentName: "RenderSelect", // 配置预览、渲染、打印组件
        options: {
            dataValue: "", // 仅渲染时内容字段
            dataReturnField: "", // 提取数据字段
            size: "mini", // 大小
            placeholder: "", // 占位符
            multiple: false, // 是否多选
            clearable: false, // 是否可以清空选项
            collapseTags: false, // 多选时是否将选中值按文字的形式展示
            multipleLimit: 0, // 多选时用户最多可以选择的项目数，为 0 则不限制
            filterable: false, // 是否可搜索
            api: "", // 接口地址
            label: "label",
            value: "value"
        },
        baseFun: {
            move: true,
            copy: true,
            delete: true
        }
    }
]